#include "widget.h"
#include "ui_widget.h"

#include <QLabel>
#include <QTextBrowser>
#include <QLineEdit>
#include <QTextEdit>
#include <QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //设置窗口的标题
    this->setWindowTitle("初识Qt");

    //设置 父窗口->Widget 的大小
    // resize()设置之后任然可以通过拉拽的方式改变大小
    //this->resize(1000,1000);

    //设置为固定的窗口，高度和宽度都不可进行修改
    this->setFixedSize(1000 , 1000); //setFixedSize()设置之后不同通过拉拽以及其他方式改变大小

    //设置固定的高度
    //this->setFixedHeight(400);
    //设置固定的宽度
    //this->setFixedWidth(550);



    //QLable 显示标签 将其创建在堆上
    QLabel* lable = new QLabel(this);
    //setText() 用于设置控件的文本内容，
    //适用于多种 UI 控件（如 QLabel、QPushButton、QLineEdit、QTextEdit 等）。
    lable->setText("QLable -> Hello World!");

    // QTextBrowser() 类似于Html
    // QTextBrowser* textBrowser = new QTextBrowser(this);
    // textBrowser->setText("hfiuas");
    // textBrowser->move(300,100);


    // 单行编辑框 QLineEdit
    QLineEdit* edit = new QLineEdit(this);
    edit->setText("单行编辑框QLineEdit！");
    edit->move(100, 100);


    // 多行编辑框 QTextEdit
    QTextEdit* textedit = new QTextEdit(this);
    textedit->setText("多行编辑框QTextEdit！");
    textedit->move(400 ,50);


    // 按钮
    //button = new QPushButton;
    //button->setParent(this);
    //button->setText("QPushButton -> Hello World！");

    //也可以直接设置按钮
    button = new QPushButton("QPushButton -> Hello World！" , this);
    button->move(300,300);
    connect(button , &QPushButton::clicked, this , &Widget::handleClick);
    //调整ui的
    connect(ui->pushButton , &QPushButton::clicked , this , &Widget::ui_handleClick);


    // 对父窗口->Widget 设置位置
    this->move(100 , 0);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::handleClick()
{
    //当按钮被点击之后，就要把按钮中的文本，进行切换
    if(button->text() == QString("QPushButton -> Hello World！")){
        button->setText("QPushButton -> Hello Qt！");
    }
    else{
        button->setText("QPushButton -> Hello World！");
    }
}

void Widget::ui_handleClick()
{
    //当按钮被点击之后，就要把按钮中的文本，进行切换
    if(ui->pushButton->text() == QString("ui ->PushButton")){
        ui->pushButton->setText("ui ->PushButton qt");
    }
    else{
        ui->pushButton->setText("ui ->PushButton");
    }
}
